using System.Windows;

// ReSharper disable CheckNamespace
namespace DevPhone.Controls
// ReSharper restore CheckNamespace
{
    /// <summary>
    /// Transition factory for a particular transition family.
    /// </summary>
    /// <QualityBand>Preview</QualityBand>
    public abstract class TransitionElement : DependencyObject
    {
        /// <summary>
        /// Creates a new
        /// Microsoft.Phone.Controls.ITransition
        /// for a System.Windows.UIElement
        /// Existing System.Windows.UIElement.RenderTransformProperty
        /// or System.Windows.UIElement.ProjectionProperty
        /// values may be saved and cleared before the start of the transition, then restored it after it is stopped or completed.
        /// </summary>
        /// <param name="element">The System.Windows.UIElement.</param>
        /// <returns>The Microsoft.Phone.Controls.ITransition.</returns>
        public abstract ITransition GetTransition(UIElement element);
    }
}